package cn.liccshop.core.service.shopGoods.service;

import cn.liccshop.core.entity.ShopGoods;
import cn.liccshop.sys.exception.MySystemException;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 商品表 服务类
 * </p>
 *
 * @author LiCC
 * @since 2019-04-08
 */
public interface IShopGoodsService extends IService<ShopGoods> {

    /**
     * 管理员添加商品基本数据
     * @param params
     * @return
     */
    ShopGoods addShopGoods(Map<String, Object> params, String userId) throws MySystemException;

    /**
     * 更新商品信息
     * @param params
     * @return
     * @throws MySystemException
     */
    ShopGoods updateGoodsAllInfo(Map<String, Object> params) throws MySystemException;

    /**
     * 删除商品信息
     * @param id
     * @return
     */
    boolean deleteGoodsById(String id) throws MySystemException;

    /**
     * 首页获取新品和热销的商品
     * @return
     */
    Map<String, Object> getGoodsOfHome();

    /**
     * 前台 -- 获取商品详细信息
     * @return
     */
    Map<String, Object> getGoodsInfoByIdPro(String goodsId, String catId, String userId);

    /**
     * 前台通过分类ID获取商品信息
     * @param catId
     * @return
     */
    Map<String, Object> getGoodsInfosByCatIdPro(String catId, Integer pagesize, Integer currentPage);

    /**
     * 前台通过搜索获取商品信息
     * @param filterName
     * @param page
     * @param size
     * @return
     */
    Map<String, Object> filterGoodsByNamePro(String filterName, int page, int size);

    /**
     * 管理员获取热销推荐
     * @param page
     * @param size
     * @return
     */
    Map<String, Object> getHotGoodsInfo(int page, int size, ShopGoods shopGoods);

}
